/**
 * 
 */
package ar.com.jsejtman.cajugastos2.view.dto;

import ar.com.jsejtman.cajugastos2.view.util.JsonDateSerializer;
import ar.com.jsejtman.cajugastos2.view.util.JsonPlataSerializer;
import java.math.BigDecimal;
import java.util.Date;
import org.codehaus.jackson.map.annotate.JsonSerialize;

/**
 * Representa una fila de la tabla de gastos.
 * 
 * @author jsejtman
 * 
 */
public class GastoDTO {

	/**
	 * Id.
	 */
	private Long id;
	/**
	 * Fecha.
	 */
	@JsonSerialize(using = JsonDateSerializer.class)
	private Date fecha;
	/**
	 * Descripcion.
	 */
	private String descripcion;
	/**
	 * monto.
	 */
	@JsonSerialize(using = JsonPlataSerializer.class)
	private BigDecimal monto;
	/**
	 * Freciencia.
	 */
	private String frecuencia;
	/**
	 * categoria.
	 */
	private String categoria;
	/**
	 * Subcategoria.
	 */
	private String subcategoria;
	/**
	 * Lugar.
	 */
	private String lugar;

	/**
	 * Constructor con parametros.
	 * 
	 * @param id id.
	 * @param fecha fecha.
	 * @param descripcion descripcion.
	 * @param monto monto.
	 * @param frecuencia frecuencia.
	 * @param categoria categoria.
	 * @param subcategoria subcategoria.
	 * @param lugar lugar.
	 */
	/* CHECKSTYLE:OFF */
	public GastoDTO(final Long id, final Date fecha, final String descripcion,
	        final BigDecimal monto, final String frecuencia, final String categoria,
	        final String subcategoria, final String lugar) {

		this.id = id;
		this.fecha = fecha;
		this.descripcion = descripcion;
		this.monto = monto;
		this.frecuencia = frecuencia;
		this.categoria = categoria;
		this.subcategoria = subcategoria;
		this.lugar = lugar;
	}

	/* CHECKSTYLE:ON */

	/**
	 * Devuelve el valor de id.
	 * 
	 * @return El valor de id.
	 */
	public final Long getId() {

		return this.id;
	}

	/**
	 * Asigna un nuevo valor a id.
	 * 
	 * @param id El valor a asignar a id.
	 */
	public final void setId(final Long id) {

		this.id = id;
	}

	/**
	 * Devuelve el valor de fecha.
	 * 
	 * @return El valor de fecha.
	 */
	public final Date getFecha() {

		return this.fecha;
	}

	/**
	 * Asigna un nuevo valor a fecha.
	 * 
	 * @param fecha El valor a asignar a fecha.
	 */
	public final void setFecha(final Date fecha) {

		this.fecha = fecha;
	}

	/**
	 * Devuelve el valor de descripcion.
	 * 
	 * @return El valor de descripcion.
	 */
	public final String getDescripcion() {

		return this.descripcion;
	}

	/**
	 * Asigna un nuevo valor a descripcion.
	 * 
	 * @param descripcion El valor a asignar a descripcion.
	 */
	public final void setDescripcion(final String descripcion) {

		this.descripcion = descripcion;
	}

	/**
	 * Devuelve el valor de monto.
	 * 
	 * @return El valor de monto.
	 */
	public final BigDecimal getMonto() {

		return this.monto;
	}

	/**
	 * Asigna un nuevo valor a monto.
	 * 
	 * @param monto El valor a asignar a monto.
	 */
	public final void setMonto(final BigDecimal monto) {

		this.monto = monto;
	}

	/**
	 * Devuelve el valor de frecuencia.
	 * 
	 * @return El valor de frecuencia.
	 */
	public final String getFrecuencia() {

		return this.frecuencia;
	}

	/**
	 * Asigna un nuevo valor a frecuencia.
	 * 
	 * @param frecuencia El valor a asignar a frecuencia.
	 */
	public final void setFrecuencia(final String frecuencia) {

		this.frecuencia = frecuencia;
	}

	/**
	 * Devuelve el valor de categoria.
	 * 
	 * @return El valor de categoria.
	 */
	public final String getCategoria() {

		return this.categoria;
	}

	/**
	 * Asigna un nuevo valor a categoria.
	 * 
	 * @param categoria El valor a asignar a categoria.
	 */
	public final void setCategoria(final String categoria) {

		this.categoria = categoria;
	}

	/**
	 * Devuelve el valor de subcategoria.
	 * 
	 * @return El valor de subcategoria.
	 */
	public final String getSubcategoria() {

		return this.subcategoria;
	}

	/**
	 * Asigna un nuevo valor a subcategoria.
	 * 
	 * @param subcategoria El valor a asignar a subcategoria.
	 */
	public final void setSubcategoria(final String subcategoria) {

		this.subcategoria = subcategoria;
	}

	/**
	 * Devuelve el valor de lugar.
	 * 
	 * @return El valor de lugar.
	 */
	public final String getLugar() {

		return this.lugar;
	}

	/**
	 * Asigna un nuevo valor a lugar.
	 * 
	 * @param lugar El valor a asignar a lugar.
	 */
	public final void setLugar(final String lugar) {

		this.lugar = lugar;
	}

}
